let { ipcRenderer, remote } = require('electron')
let textAreaDom = document.querySelector('#textArea');
let fs = require('fs');
document.title = '无标题'
let isSave = true;//判断文件是否保存
let currentFile = '';//保存当前文件的路径
//文件有输入时候，改变保存到状态
textAreaDom.oninput = () => {
    if(isSave){
        document.title += ' *';
    }
    isSave = false;
}

document.addEventListener('contextmenu', function (e) {
    e.preventDefault();
    ipcRenderer.send('contextMenu')
})
ipcRenderer.on('action', (event, action) => {
    switch (action) {
        case 'open':
            remote.dialog.showOpenDialog(remote.BrowserWindow.getFocusedWindow(), {
                properties: ['openFile']
            }, function (path) {
                //如果不加判断，点击取消时候还保存，会报错，如果path为空数组就是点击了取消
                if (path.length >= 1) {
                    currentFile=path[0];
                    //因为文件可以多选，所以是path数组
                    fs.readFile(path[0], (err, data) => {
                        textAreaDom.value = data;
                    })
                }
            })
            break;
        case 'save':
            saveCurrentDoc();
            break;
        case 'new':
            //判断文件是否保存，如果没用保存要有提示
            askSaveDialog()
            textAreaDom.value = '';
            break;
    }
})
function askSaveDialog() {
    if (!isSave) {
        //0 就是yes  1 就是no

        let index = remote.dialog.showMessageBox({
            type: 'question',
            message: '是否要保存文件?',
            buttons: ['Yes', 'No']
        });
        if (index == 0) {
            //执行保存操作
            saveCurrentDoc()
        }
    }
}
//执行保存的方法
function saveCurrentDoc() {
    if (!currentFile) {//如果当前路径存在，证明之前保存过，
        let dir = remote.dialog.showSaveDialog({
            filters: [
                { name: 'All Files', extension: ['*'] }
            ],
            defaultPath: 'aaa.txt'
        });
        if (dir) {
            fs.writeFileSync(dir, textAreaDom.value);
            currentFile=dir;
            isSave=true;
            document.title=currentFile;
        }
    }else{//之前保存过，则不提示，直接保存
        fs.writeFileSync(currentFile, textAreaDom.value);
        isSave=true;
        document.title=currentFile;
    }
}